import { DocumentBuilder } from '@nestjs/swagger';

// OpenAPI 规范配置
export const getSwaggerConfig = (env: string, localIp: string, port: number) => {
  return new DocumentBuilder()
    .setTitle(`活动圈 API [${env == 'production' ? '生产环境' : '开发环境'}]`)
    .setDescription(`活动圈项目的 API 文档 http://${localIp}:${port}`)
    .setVersion('1.0.0')
    .addBearerAuth({
      type: 'http',
      scheme: 'bearer',
      bearerFormat: 'JWT',
      description: '请输入 JWT Token',
      in: 'header',
    }, 'Authorization', // 认证头的名称
    )
    .addServer(`http://${localIp}:${port}`, '本地环境')
    .build();
};

// Swagger UI 显示配置
export const getSwaggerOptions = (env: string) => ({
  persistAuthorization: env !== 'production', // 生产环境禁用
  tagsSorter: 'alpha',
  operationsSorter: 'alpha',
  docExpansion: 'none', // 开发环境展开更多
  customSiteTitle: '活动圈 API 文档',
  customCss: `
      .swagger-ui .models {
        display: none;
      }
    `, // 隐藏 models 区域
});